package com.fortune.dao;

import com.fortune.dto.in.dealerRemind.DealerRemindConFirmDto;
import com.fortune.dto.in.dealerRemind.DealerRemindListDto;
import com.fortune.dto.in.mDAccountMgt.MDAccountListDto;
import com.fortune.entity.SimpleManufactory;
import com.fortune.vo.dealerRemind.DealerRemindList;
import com.fortune.vo.mDAccountMgt.MDealerInfo;
import com.fortune.vo.mDAccountMgt.MDealerList;
import org.apache.ibatis.annotations.Param;

import java.util.List;

public interface MDRelationDao {
    /**
     * 查询经销商列表
     * @param companyId
     * @param mdAccountListDto
     * @return
     */
    List<MDealerList> queryDelareList(@Param("companyId") String companyId, @Param("mdAccountListDto") MDAccountListDto mdAccountListDto);

    /**
     *查询经销商列表个数
     * @param companyId
     * @param mdAccountListDto
     * @return
     */
    int queryDelareListCount(@Param("companyId") String companyId, @Param("mdAccountListDto") MDAccountListDto mdAccountListDto);

    /**
     * 查询详情
     * @param phone
     * @return
     */
    MDealerInfo queryMDealerInfo(String phone);

    /**
     * 经销商厂商关系表数据是否存在
     * @param companyId
     * @param id
     * @return
     */
    int queryRelationIsExist(@Param("companyId") String companyId, @Param("id") String id);

    /**
     * 添加经销商
     * @param companyId
     * @param id
     * @return
     */
    int addRelationIs(@Param("companyId") String companyId, @Param("id") String id);

    /**
     * 删除经销商
     * @param companyId
     * @param id
     * @return
     */
    int delete(@Param("companyId") String companyId, @Param("id") String id);
    
    /**
     * 
     * @param mId
     * @param dId
     * @return
     */
    List<SimpleManufactory> listRelationedManufactories(@Param("dId") String dId);

    /**
     * 经销商查询厂商添加提醒
     * @param dealerId
     * @param dealerRemindListDto
     * @return
     */
    List<DealerRemindList> queryCompanyByDealerList(@Param("dealerId") String dealerId, @Param("dealerRemindListDto") DealerRemindListDto dealerRemindListDto);

    /**
     * 经销商查询厂商添加提醒个数
     * @param dealerId
     * @param dealerRemindListDto
     * @return
     */
    int queryCompanyByDealerListCount(@Param("dealerId") String dealerId, @Param("dealerRemindListDto") DealerRemindListDto dealerRemindListDto);

    /**
     * 查询数据库里状态
     * @param dealerId
     * @param companyId
     * @return
     */
    String queryRelationType(@Param("dealerId") String dealerId, @Param("companyId") String companyId);

    /**
     * 修改状态
     * @param dealerId
     * @param dealerRemindConFirmDto
     * @return
     */
    int updateType(@Param("dealerId") String dealerId, @Param("dealerRemindConFirmDto") DealerRemindConFirmDto dealerRemindConFirmDto);

    /**
     * 查询厂商下经销商数量
     * @param companyId
     * @return
     */
    int queryDelareOfCompanyCount(String companyId);
}
